<?php

/**
 * thinkcmfapp自定义函数，建立app目录下的common.php，即可调用
 */
// +----------------------------------------------------------------------
// +----------------------------------------------------------------------


/**
 * 取得销售role_id
 */
function getXsRoleID()
{
    return config('app.xsRoleId');
}
/**
 * 取得项目工程师的角色Id
 */
function getGcsRoleID()
{
    return config('app.xmgcsRoleId');
}
/**
 * 取得运维工程师的角色Id
 */
function getYwgcsRoleID()
{
    return config('app.ywgcsRoleId');
}
/**
 * 取得工程助理的角色Id
 */
function getPtAdmin1RoleID()
{
    return config('app.ptAdmin1RoleId');
}
/**
 * 取得主管的角色Id
 */
function getPtAdminRoleID()
{
    return config('app.ptAdminRoleId');
}
/**
 * 取得BU领导的角色ID
 */
function getBUldRoleID()
{
    return config('app.BUldId');
}

/**现在时间 
 * 
 */
function now()
{
    return time();
}
/**
 * 返回上周的起始时间
 */
function lastweek()
{
    $week = [];
    $week['ksrq'] = mktime(0, 0, 0, date('m'), date("d") - date('w') + 1 - 7, date('Y'));
    $week['jsrq'] = mktime(23, 59, 59, date('m'), date('d') - date('w') + 7 - 7, date('Y'));
    return $week;
}
/**
 * 返回本周的起始时间
 */
function thisweek()
{
    $week = [];
    $week['ksrq'] = mktime(0, 0, 0, date('m'), date("d") - date('w') + 1, date('Y'));
    $week['jsrq'] = mktime(23, 59, 59, date('m'), date('d') - date('w') + 7, date('Y'));
    return $week;
}
/**
 * 返回上月的起始时间
 */
function lastmonth()
{
    $month = [];
    $month['ksrq'] = mktime(0, 0, 0, date('m') - 1, 1, date('Y'));
    $month['jsrq'] = mktime(23, 59, 59, date('m') - 1, date('t'), date('Y'));
    return $month;
}
/**
 * 返回本月的起始时间
 */
function thismonth()
{
    $month = [];
    $month['ksrq'] = mktime(0, 0, 0, date('m'), 1, date('Y'));
    $month['jsrq'] = mktime(23, 59, 59, date('m'), date('t'), date('Y'));
    return $month;
}
/**
 * 返回上一季度的起始时间
 */
function lastseason()
{
    $year = [];
    $season = ceil((date('n')) / 3) - 1;  //本季
    $year['ksrq'] = mktime(0, 0, 0, $season * 3 - 3 + 1, 1, date('Y'));
    $year['jsrq'] = mktime(23, 59, 59, $season * 3, date('t', mktime(0, 0, 0, $season * 3, 1, date('Y'))), date('Y'));
    return $year;
}
/**
 * 返回本季度的起始时间
 */
function thisseason()
{
    $year = [];
    $season = ceil((date('n')) / 3);  //本季
    $year['ksrq'] = mktime(0, 0, 0, $season * 3 - 3 + 1, 1, date('Y'));
    $year['jsrq'] = mktime(23, 59, 59, $season * 3, date('t', mktime(0, 0, 0, $season * 3, 1, date('Y'))), date('Y'));
    return $year;
}
/**
 * 返回上一年的起始时间
 */
function lastyear()
{
    $year = [];
    $year['ksrq'] = mktime(0, 0, 0, 1, 1, date('Y') - 1);
    $year['jsrq'] = mktime(23, 59, 59, 12, date('t'), date('Y') - 1);
    return $year;
}
/**
 * 返回本年的起始时间
 */
function thisyear()
{
    $year = [];
    $year['ksrq'] = mktime(0, 0, 0, 1, 1, date('Y'));
    $year['jsrq'] = mktime(23, 59, 59, 12, date('t'), date('Y'));
    return $year;
}

/**
 * 返回仅日期的unix时间戳，如2024-11-18的时间戳
 */
function timestampByDate($datestr = null)
{
    if (empty($datestr)) {
        $dt = strtotime(date('Y-m-d',  time()));
        return $dt;
    }
    $dt = strtotime(date('Y-m-d',  strtotime($datestr)));
    return $dt;
}

/**
 * 上传文件1,成功返回文件没有域名的url，失败返回false
 * @param  string uploadfile
 * @param  mixed  $default 默认值
 * @return mixed  成功返回文件没有域名的url，失败返回false
 * $f = $this->request->file('imgs');
 */
function uploadfile1($f)
{
    //$ok = $f->move('../public/wxuploads');
    $y = date("Y");
    $rootdir = $_SERVER['DOCUMENT_ROOT'];       //"/home/xiongyi/xmgl/public"
    $folder = "$rootdir/wxuploads/$y";
    if (!file_exists($folder)) {
        if (!mkdir($folder)) {
            return false;           //返回失败
        }
    }
    $ok = $f->move($folder);
    if (!$ok) {
        return false;           //返回失败
    }
    $pathfile = $ok->getPathname(); //"../public/wxuploads/20201008/xx.png"
    //替换'../public'成'/'即成了url,//或者用"/wxuploads/" 加上getSaveName()
    //$url = str_replace("../public/", "/", $pathfile);
    $url = str_replace($rootdir, "", $pathfile);
    return $url;        //返回文件url，去掉文件存放目录后的路径 
}

/**
 * 删除文件1，
 * @param  string 文件带域名的url
 * @return mixed  成功返回文件的物理路径，失败返回false
 * $fileurl = $this->request->param("img/s", null);
 * $fileurl = 'http://xxx.com/...../123.jpg'
 */
function deletefile($fileurl)
{
    //拆分URL到文件路径:https://x.kjdll.com/wxuploads/20201015/bde52e7b8dca792341e5caf83ce44735.jpg
    // 获取URL访问的ROOT地址包含域名
    //$request = request();
    //$rurl = $request->root(true);
    //$url = str_replace($rurl, "", $fileurl);  //数据库里的文件url

    //删除物理文件
    $rootdir = $_SERVER['DOCUMENT_ROOT'];       //"/home/xiongyi/xmgl/public"
    $file = str_replace("/wxuploads", $rootdir . "/wxuploads", $fileurl); //通过替换，找到文件保存路径，保留/wxupload/
    if (!file_exists($file)) {
        return false;
    }
    if (!unlink($file)) {
        return false;
    }
    return true;    //返回数据库里保存的字符串，用于从数据表里删除它
}

/**
 * 将以逗号分割的图片url，转成数组并加上域名，
 * @param string 用逗号分割的图片url
 * @return array  成功返回数组，失败返回false
 */
function imgstoarr($imgs)
{
    $arr = [];
    //将字符串分割的imgs转换成数组
    if (is_null($imgs) || $imgs == '') {
        return false;
    }

    $t1 = explode(',', $imgs);  //将以逗号分割的字符串转换成数组
    foreach ($t1 as $k => $v) {
        $arr[$k] = [
            'url' => mkimgurl($v),
            'imgstr' => $v,
            'server' => true,               //表示图片是从服务器取出，如果删除则需要服务器也删除
            'isImage' => true,
        ];
    }
    return $arr;    //返回数据库里保存的字符串，用于从数据表里删除它
}

/**
 * 返回网站root的url："https://a.300y.com.cn:9999/"
 */
function urlroot()
{
    return "{$_SERVER['REQUEST_SCHEME']}://{$_SERVER['HTTP_HOST']}/";
}

/**
 * 生成图片的url链接
 */
function mkimgurl($img)
{
    $r = urlroot();
    return "$r$img";
}

/**
 * 创建json返回数据
 * code: 0失败，200成功，401未授权，500服务器内部错误
 * $arr 额外要带入的参数
 */
function cjson($code = 0, $data = '', $errcode = 0, $msg = '', $data_describe = '')
{
    $j = [
        'code'                  => $code,
        'errcode'               => $errcode,
        'msg'               => $msg,
        'data_describe'         => $data_describe,
        'data'                  => $data
    ];
    return json($j);
}

/**
 * 创建json错误返回数据
 * code: 0失败，1成功，401未授权，500服务器内部错误
 * $arr 额外要带入的参数
 */
function json_err($msg = '', $data = null, $data_describe = '')
{
    $j = [
        'code'                  => 0,
        'msg'               => $msg,
        'data_describe'         => $data_describe,
        'data'                  => $data
    ];
    return json($j);
}
/**
 * 创建json正确返回数据
 * code: 0失败，1成功，401未授权，500服务器内部错误
 * $arr 额外要带入的参数
 */
function json_success($data = null, $msg = '', $data_describe = '')
{
    $j = [
        'code'                  => 1,
        'msg'               => $msg,
        'data_describe'         => $data_describe,
        'data'                  => $data
    ];
    return json($j);
}
